﻿using DoNet.Core.Models;
using SqlSugar;
using System.ComponentModel;

namespace DoNet.Bpmn.Models
{
    /// <summary>
    /// 流程节点HRBP表，数据实体对象
    /// </summary>
    [SugarTable("Bpmn_NodeHrbpConfig", "流程节点HRBP表")]
    [Serializable]
    public class BpmnNodeHrbpConfig : TenantEntity, ICreationAudited, IModificationAudited, IDeleteAudited
    {
        /*
        `id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT 'auto incr id',
        `bpmn_node_id` BIGINT(20) NULL COMMENT 'node id',
        `hrbp_conf_type` INT(11) NULL COMMENT 'hrbp type 1-hrbp,2-hrbp leader,this is only for extensibility purpose,if your system do not have hrbp leader,you can ignore this field if your system have other concept,for example hrbp manager,you can use this field to store hrbp manager(eg 3 for hrbp manager)',
        `remark` VARCHAR(255) NULL COMMENT 'remark',
        `is_del` INT(11) NULL COMMENT '0 for normal,1 for deleted',
        `create_user` VARCHAR(255) NULL COMMENT 'create user',
        `create_time` DATETIME NULL COMMENT 'create time',
        `update_user` VARCHAR(255) NULL COMMENT 'update user',
        `update_time` DATETIME NULL COMMENT 'update time', 
        */
        /// <summary>
        /// 获取或设置 编号
        /// </summary>
        [DisplayName("编号")]
        [SugarColumn(IsPrimaryKey = true, ColumnDescription = "编号,主键")]
        public override long Id { get; set; }
        /// <summary>
        /// 
        /// </summary>
        [SugarColumn(ColumnDescription = "")]
        public virtual long BpmnNodeId { get; set; }
        /// <summary>
        /// hrbp type 1-hrbp,2-hrbp leader,this is only for extensibility purpose,if your system do not have hrbp leader,you can ignore this field if your system have other concept,for example hrbp manager,you can use this field to store hrbp manager(eg 3 for hrbp manager)
        /// </summary>
        [SugarColumn(ColumnDescription = "")]
        public virtual int? HrbpConfigType { get; set; }
        /// <summary>
        /// 备注
        /// </summary>
        [SugarColumn(ColumnDescription = "备注")]
        public virtual string Description { get; set; } = string.Empty;

        /// <summary>
        /// 创建日期
        /// </summary>
        [SugarColumn(ColumnDescription = "创建日期")]
        public virtual DateTime? CreatorTime { get; set; }

        /// <summary>
        /// 创建用户主键
        /// </summary>
        [SugarColumn(ColumnDescription = "创建用户主键")]
        public virtual long? CreatorUserId { get; set; }

        /// <summary>
        /// 最后修改时间
        /// </summary>
        [SugarColumn(ColumnDescription = "最后修改时间")]
        public virtual DateTime? LastModifyTime { get; set; }

        /// <summary>
        /// 最后修改用户
        /// </summary>
        [SugarColumn(ColumnDescription = "最后修改用户")]
        public virtual long? LastModifyUserId { get; set; }

        /// <summary>
        /// 删除标志
        /// </summary>
        [SugarColumn(ColumnDescription = "删除标志")]
        public virtual bool DeleteMark { get; set; }

        /// <summary>
        /// 删除时间
        /// </summary>
        [SugarColumn(ColumnDescription = "删除时间")]
        public virtual DateTime? DeleteTime { get; set; }

        /// <summary>
        /// 删除用户
        /// </summary>
        [SugarColumn(ColumnDescription = "删除用户")]
        public virtual long? DeleteUserId { get; set; }
    }
}
